#ifndef _IMAGEMANAGER
#define _IMAGEMANAGER

#include "Include.h"
#include "ImageWrap.h"
#include "Singleton.h"

/**
 * ImageManager
 * Contains all the images in the game
 */
class ImageManager : public Singleton<ImageManager> {
private:
    vector<ImageWrap*> imageWrap;
    int FindIndex(const string& sId);

public:
    // Init/Deinit
    void Initialize();
    void Shutdown();

    // Object functionality
    void AddImage(const string& relPath, const string& sId);
    Image& GetImage(const sf::Image& image, const string& sId);
    Image& GetImage(const string& path, const string& sId);

    // Get/Set
    Image& GetImage(const string& sId);
    Image& GetImage(unsigned int iId);
    bool FindImage(const string& sId);
};

#endif
